package com.ruoyi.common.core.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.AreaName;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.UserBusinessInfo;
import com.ruoyi.common.enums.UserBusinessSubType;
import com.ruoyi.common.enums.UserBusinessType;
import lombok.Data;


/**
 * 工作人员视图对象 member_info
 *
 * @author strongme
 * @date 2023-04-25
 */
@Data
@ExcelIgnoreUnannotated
public class MemberInfoVo implements UserBusinessInfo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 工作人员类型
     */
    @ExcelProperty(value = "工作人员类型")
    private String type;

    public UserBusinessSubType getSubType() {
        return UserBusinessSubType.getUserType(type, UserBusinessType.USER_MEMBER);
    }

    /**
     * 管辖区域
     */
    @ExcelProperty(value = "管辖区域")
    private String gxqy;

    @AreaName
    public String getGxqyName() {
        return gxqy;
    }

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String name;

    /**
     * 工作职务
     */
    @ExcelProperty(value = "工作职务")
    private String gzzw;

    /**
     * 联系方式
     */
    @ExcelProperty(value = "联系方式")
    private String mobile;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别")
    private String gender;

    /**
     * 小组内职务
     */
    @ExcelProperty(value = "小组内职务")
    private String xznzw;

    /**
     * 分工情况
     */
    @ExcelProperty(value = "分工情况")
    private String fgqk;

    /**
     * 政治面貌
     */
    @ExcelProperty(value = "政治面貌")
    private String zzmm;

    /**
     * 文化程度
     */
    @ExcelProperty(value = "文化程度")
    private String whcd;

    /**
     * 身份证号码
     */
    @ExcelProperty(value = "身份证号码")
    private String idno;

    /**
     * 地址
     */
    @ExcelProperty(value = "地址")
    private String address;

    /**
     * 工作单位
     */
    @ExcelProperty(value = "工作单位")
    private String unit;

    /**
     * 社工级别
     */
    @ExcelProperty(value = "社工级别")
    private String sgjb;

    /**
     * 图片
     */
    @ExcelProperty(value = "图片")
    private String images;


    @Override
    public String getArea() {
        return null;
    }

    @Override
    public UserBusinessType getBusinessType() {
        return UserBusinessType.USER_MEMBER;
    }

    @Override
    public UserBusinessSubType getBusinessSubType() {
        return UserBusinessSubType.getUserType(type, UserBusinessType.USER_MEMBER);
    }

    private SysUser sysUser;

    public Long getSysUserId() {
        return sysUser != null ? sysUser.getUserId() : null;
    }

}
